<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>PinCRT: Signals</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">PinCRT
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">Signals</div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structSIGACTION.html">SIGACTION</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gad356e9fc0009787d0f4fd75761b2312d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__SIGNALS.html#gad356e9fc0009787d0f4fd75761b2312d">OS_SendSignalToProcess</a> (<a class="el" href="group__OS__APIS__TYPES.html#gae6c37d3a178129452bbb6e591c13aeb0">NATIVE_PID</a> pid, INT signal)</td></tr>
<tr class="separator:gad356e9fc0009787d0f4fd75761b2312d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaca478df2d2cad5e9e192a0a6afd3f157"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__SIGNALS.html#gaca478df2d2cad5e9e192a0a6afd3f157">OS_SigProcMask</a> (INT how, const SIGSET_T *set, SIGSET_T *oldset)</td></tr>
<tr class="separator:gaca478df2d2cad5e9e192a0a6afd3f157"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8736511da8873f1e09877056989c1b63"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__SIGNALS.html#ga8736511da8873f1e09877056989c1b63">OS_SigAction</a> (INT signum, const struct <a class="el" href="structSIGACTION.html">SIGACTION</a> *act, struct <a class="el" href="structSIGACTION.html">SIGACTION</a> *oldact)</td></tr>
<tr class="separator:ga8736511da8873f1e09877056989c1b63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab760657fa1a70edbfacba128ccbe1d92"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__SIGNALS.html#gab760657fa1a70edbfacba128ccbe1d92">OS_SigSuspend</a> (const SIGSET_T *mask)</td></tr>
<tr class="separator:gab760657fa1a70edbfacba128ccbe1d92"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga4175fcbfa7821e8d22000e21d03a94e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__SIGNALS.html#ga4175fcbfa7821e8d22000e21d03a94e9">OS_SigPending</a> (const SIGSET_T *set)</td></tr>
<tr class="separator:ga4175fcbfa7821e8d22000e21d03a94e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaee16d740855d85b292290106194131e7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__OS__APIS__SIGNALS.html#gaee16d740855d85b292290106194131e7">OS_SendSignalToThread</a> (<a class="el" href="group__OS__APIS__TYPES.html#gae6c37d3a178129452bbb6e591c13aeb0">NATIVE_PID</a> pid, <a class="el" href="group__OS__APIS__TYPES.html#ga20167a3cedec6512ccdc030b50ee780b">NATIVE_TID</a> tid, UINT32 signal)</td></tr>
<tr class="separator:gaee16d740855d85b292290106194131e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<h2 class="groupheader">Function Documentation</h2>
<a id="gad356e9fc0009787d0f4fd75761b2312d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gad356e9fc0009787d0f4fd75761b2312d">&#9670;&nbsp;</a></span>OS_SendSignalToProcess()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_SendSignalToProcess </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gae6c37d3a178129452bbb6e591c13aeb0">NATIVE_PID</a>&#160;</td>
          <td class="paramname"><em>pid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">INT&#160;</td>
          <td class="paramname"><em>signal</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Send signal to a process. This function is compatible with POSIX kill().</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pid</td><td>The process to send signal to. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">signal</td><td>The signal to send.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation status code.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS*<br  />
 <b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
<a id="gaee16d740855d85b292290106194131e7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaee16d740855d85b292290106194131e7">&#9670;&nbsp;</a></span>OS_SendSignalToThread()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_SendSignalToThread </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#gae6c37d3a178129452bbb6e591c13aeb0">NATIVE_PID</a>&#160;</td>
          <td class="paramname"><em>pid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__OS__APIS__TYPES.html#ga20167a3cedec6512ccdc030b50ee780b">NATIVE_TID</a>&#160;</td>
          <td class="paramname"><em>tid</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">UINT32&#160;</td>
          <td class="paramname"><em>signal</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Send signal to a particular thread inside a process.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">pid</td><td>The process ID where the thread is running.if it's INVALID_NATIVE_PID then we ignore the pid. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">tid</td><td>The thread ID to send the signal to. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">signal</td><td>The signal to send.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation status code.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS*<br  />
 <b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
<a id="ga8736511da8873f1e09877056989c1b63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8736511da8873f1e09877056989c1b63">&#9670;&nbsp;</a></span>OS_SigAction()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_SigAction </td>
          <td>(</td>
          <td class="paramtype">INT&#160;</td>
          <td class="paramname"><em>signum</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const struct <a class="el" href="structSIGACTION.html">SIGACTION</a> *&#160;</td>
          <td class="paramname"><em>act</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">struct <a class="el" href="structSIGACTION.html">SIGACTION</a> *&#160;</td>
          <td class="paramname"><em>oldact</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Change the action taken by a process on receipt of a specific signal. This function is compatible with POSIX sigaction().</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">signum</td><td>The signal to alter its behavior. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">act</td><td>The action to be taken upon signal reception. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">oldact</td><td>The previous action that was taken upon signal reception.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation status code.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS*<br  />
 <b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
<a id="ga4175fcbfa7821e8d22000e21d03a94e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga4175fcbfa7821e8d22000e21d03a94e9">&#9670;&nbsp;</a></span>OS_SigPending()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_SigPending </td>
          <td>(</td>
          <td class="paramtype">const SIGSET_T *&#160;</td>
          <td class="paramname"><em>set</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Returns the set of signals that are pending for delivery to the calling thread (i.e., the signals which have been raised while blocked). The mask of pending signals is returned in set.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">set</td><td>Where to store the signal set.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation status code.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS*<br  />
 <b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
<a id="gaca478df2d2cad5e9e192a0a6afd3f157"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaca478df2d2cad5e9e192a0a6afd3f157">&#9670;&nbsp;</a></span>OS_SigProcMask()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_SigProcMask </td>
          <td>(</td>
          <td class="paramtype">INT&#160;</td>
          <td class="paramname"><em>how</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const SIGSET_T *&#160;</td>
          <td class="paramname"><em>set</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SIGSET_T *&#160;</td>
          <td class="paramname"><em>oldset</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Change the signal mask, the set of currently blocked signals for the current thread. This function is compatible with POSIX sigprocmask().</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">how</td><td>Specifies how to alter the blocked signals mask: SIG_BLOCK: The set of blocked signals is the union of the current set and the set argument. SIG_UNBLOCK: The signals in set are removed from the current set of blocked signals. It is legal to attempt to unblock a signal which is not blocked. SIG_SETMASK: The set of blocked signals is set to the argument set. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">set</td><td>The signal set to alter. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">oldset</td><td>The previous blocked signals set.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation status code.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS*<br  />
 <b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
<a id="gab760657fa1a70edbfacba128ccbe1d92"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab760657fa1a70edbfacba128ccbe1d92">&#9670;&nbsp;</a></span>OS_SigSuspend()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__OS__APIS__DEF.html#ga8e6b2f5406a922a419991358caae6fc7">OS_RETURN_CODE</a> OS_SigSuspend </td>
          <td>(</td>
          <td class="paramtype">const SIGSET_T *&#160;</td>
          <td class="paramname"><em>mask</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Temporarily replaces the signal mask of the calling process with the mask given by mask and then suspends the process until delivery of a signal whose action is to invoke a signal handler or to terminate a process.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">mask</td><td>The mask to use for the signals</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Operation status code.</dd></dl>
<dl class="section user"><dt>Availability:</dt><dd><b>O/S</b>: Linux &amp; macOS*<br  />
 <b>CPU:</b> All<br  />
</dd></dl>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.17
</small></address>
</body>
</html>
